/********************************************************************/
/*                                                                  */
/*	       CREAM: A (JVM-like) Toy Abstract Machine             */
/*                                                                  */
/*		Copyright (c) 1998- , C.R. Ramakrishnan             */
/*                                                                  */
/*  $Id: stdio.c,v 1.2 2012/04/26 18:33:39 cram Exp $ */
/*                                                                  */
/********************************************************************/
void print_string()
{
  char* string;
  //  new_env(1,0);
  ildc(0);
  load();
  string = (char *) &(static_area[region_table[0] + stack[sp-1]]);
  printf("%s", string);
  return;
}

void print_int()
{
  //  new_env(1,0);
  ildc(0);
  load();
  printf("%ld", stack[sp-1]);
  return;
}

void print_float()
{
  //  new_env(1,0);
  ildc(0);
  load();
  printf("%g", i2f(stack[sp-1]));
  return;
}

void print_boolean()
{
  //  new_env(1,0);
  ildc(0);
  load();
  if (stack[sp-1] == 0)
    printf("false");
  else
    printf("true");
  return;
}

void scan_int()
{
  int i;

  //  new_env(0,0);
  scanf("%d", &i);
  ildc(i);
  return;
}

void scan_float()
{
  float f;

  //  new_env(0,0);
  scanf("%f", &f);
  fldc(f);
  return;
}
